package Gui.Modele;

import java.util.ArrayList;
import java.util.List;

import javax.swing.table.AbstractTableModel;

import PodsumowaniaLingwistyczne.PodsumowanieTypu2;

public class ModelTabeliPodsumowan extends AbstractTableModel {

	private static final long serialVersionUID = 1L;
	private List<PodsumowanieTypu2> listaPodsumowan = null;
	private String[] kolumny = { "Podsumowanie", "T0", "T1", "T2", "T3", "T4",
			"T5", "T6", "T7", "T8", "T9", "T10", "T11" };

	public ModelTabeliPodsumowan() {
		listaPodsumowan = new ArrayList<PodsumowanieTypu2>();
	}

	public ModelTabeliPodsumowan(List<PodsumowanieTypu2> content) {
		super();
		this.listaPodsumowan = content;
	}

	public void setListaPodsumowan(List<PodsumowanieTypu2> listaPodsumowan) {
		this.listaPodsumowan = listaPodsumowan;
	}
	
	public PodsumowanieTypu2 getPodsumowanieTypu2(int numerWiersza){
		if(listaPodsumowan != null && listaPodsumowan.size() > 0){
			return listaPodsumowan.get(numerWiersza);
		}
		return null;
	}
	
	@SuppressWarnings("unchecked")
	@Override
	public Class getColumnClass(int numerKolumny){
		if(numerKolumny == 0){
			return String.class;
		}
		return Float.class;
	}

	@Override
	public int getColumnCount() {
		return kolumny.length;
	}

	@Override
	public int getRowCount() {
		return listaPodsumowan.size();
	}
	
	public boolean isCellEditable(int row, int col){ 
		return false; 
	}

	
	public String getColumnName(int numerKolumny){
	    
	    return kolumny[numerKolumny];
}

	@Override
	public Object getValueAt(int numerWiersza, int numerKolumny) {
		PodsumowanieTypu2 podsumowanie = listaPodsumowan.get(numerWiersza);
		float[] ocenaPodsumowania = podsumowanie.getOcena();
        switch(numerKolumny){
            case 0:
                return podsumowanie.toString();
            case 1:
                return ocenaPodsumowania[0];
            case 2:
                return ocenaPodsumowania[1];
            case 3:
            	return ocenaPodsumowania[2];
            case 4:
            	return ocenaPodsumowania[3];
            case 5:
            	return ocenaPodsumowania[4];
            case 6:
            	return ocenaPodsumowania[5];
            case 7:
            	return ocenaPodsumowania[6];
            case 8:
            	return ocenaPodsumowania[7];
            case 9:
            	return ocenaPodsumowania[8];
            case 10:
            	return ocenaPodsumowania[9];
            case 11:
            	return ocenaPodsumowania[10];
            case 12:
            	return ocenaPodsumowania[11];
        }
        return null;
	}
}
